,..............................|..,
:rev                           |  :
:                              v  :
: *=================*  *========* :
: !send[(Inr (), E)]!->!use rev1!--
: *=================*  *========* :
,.................................,
,.............................|.................................,
:rev1                         v                                 :
:                      *=============*                          :
:                      !case N of S,E!-----------------------+  :
:                      *=============*                       |  :
:                             |                              |  :
:                             v                              |  :
:                       *=======*                            |  :
:                       !split N!------------------+         |  :
:                       *=======*                  |         |  :
:                             |                    |         |  :
:                             v                    v         |  :
: *==================*  *======================*  *========* |  :
->!send [(W,S),(W,E)]!->!send [ (Inl(N, W), E)]!->!use rev1!-#---
: *==================*  *======================*  *========* |  :
:            |                                               v  :
:            |                                  *=============* :
:            +--------------------------------->!send [(W, E)]!--
:                                               *=============* :
,...............................................................,
